﻿namespace MySnake {

    //播放状态
    export enum PalyState {
        Play = 0,
        Pause = 1,
        Stop = 2,
        Replay = 3
    }

    //添加游戏背景音乐
    export class Music {

        /**
         * 游戏背景音乐操作
         * @param audio - 多媒体控件
         * @param ps - 播放状态
         */
        static GoGimes(audio: HTMLAudioElement, ps: PalyState): void {
            switch (ps) {
                case PalyState.Play:
                    this.Play(audio);
                    break;
                case PalyState.Pause:
                    this.Pause(audio);
                    break;
                case PalyState.Stop:
                    this.Stop(audio);
                    break;
                case PalyState.Replay:
                    this.Replay(audio);
                    break;
            }
        }

        /**
         * 播放(继续播放)
         * @param audio
         */
        private static Play(audio: HTMLAudioElement): void {
            audio.play();
        }

        /**
         * 暂停
         * @param audio
         */
        private static Pause(audio: HTMLAudioElement): void {
            audio.pause();
        }

        /**
         * 停止
         * @param audio
         */
        private static Stop(audio: HTMLAudioElement): void {
            audio.pause();
            audio.currentTime = 0; //设置或返回音频/视频中的当前播放位置（以秒计）
        }

        /**
         * 重新播放
         * @param audio
         */
        private static Replay(audio: HTMLAudioElement): void {
            audio.currentTime = 0;
            audio.play();
        }

        /**
         * 声音控制
         * @param audio
         * @param valnum
         */
        static SoundControl(audio: HTMLAudioElement, valnum: number): void {
            audio.volume = valnum; //设置或返回音频/视频的音量
        }
    }
}
